API Documentation
Buffer.h
1 // Buffer.h
3 //
5 
6 namespace nkGraphics
7 {
14  class DLL_GRAPHICS_EXPORT Buffer : public ShaderResource, public nkExport::Exportable
15  {
16  public :
17 
21  Buffer () ;
25  Buffer (const Buffer& other) = delete ;
29  virtual ~Buffer () ;
30 
31  // Getters
35  unsigned int getElementByteSize () const ;
39  unsigned int getElementCount () const ;
43  unsigned int getTotalByteSize () const ;
47  virtual USAGE getUsage () const = 0 ;
51  virtual BIND_FLAG getBindFlag () const = 0 ;
55  virtual CPU_ACCESS_FLAG getCpuAccessFlag () const = 0 ;
59  virtual RESOURCE_MISC_FLAG getMiscFlag () const = 0 ;
60 
61  // Setters
71  void setCpuData (const nkMemory::BufferView<>& data) ;
95  virtual void freeCpuData () ;
101  virtual void setElementByteSize (unsigned int value) ;
107  virtual void setElementCount (unsigned int value) ;
115  virtual void setUsage (USAGE value) = 0 ;
121  virtual void setBindFlag (BIND_FLAG value) = 0 ;
127  virtual void setCpuAccessFlag (CPU_ACCESS_FLAG value) = 0 ;
133  virtual void setMiscFlag (RESOURCE_MISC_FLAG value) = 0 ;
139  virtual void copyParams (const Buffer& other) = 0 ;
140 
141  // Mapping
152  virtual MapResult map (const MapRequestDescriptor& requestDesc) = 0 ;
158  virtual void unmap (const UnmapRequestDescriptor& requestDesc) = 0 ;
167  virtual void gpuCopyFrom (Buffer& other, const ResourceGpuCopyDescriptor& descriptor) = 0 ;
168 
169  // Usage declarations
176  virtual void prepareForShaderResourceUsage (bool value = true) ;
183  virtual void prepareForComputeResourceUsage (bool value = true) ;
190  virtual void prepareForOutputStreamUsage (bool value = true) ;
191 
192  // Operators
196  Buffer& operator= (const Buffer& other) = delete ;
197 
198  // Import export
204  virtual void exportClassToTree (nkExport::Node* rootNode) override ;
210  virtual void importClassFromTree (nkExport::Node* rootNode) override ;
211  } ;
212 }
nkGraphics::MapResult
Contains all information of the result of a map operation on a resource.
Definition: MapResult.h:12
nkGraphics::RESOURCE_MISC_FLAG
RESOURCE_MISC_FLAG
Available misc flags for resources.
Definition: DxDefinesWrapper.h:56
nkGraphics::Buffer::Buffer
Buffer()
nkGraphics::MapRequestDescriptor
A description of a request to map a resource.
Definition: MapRequestDescriptor.h:29
nkGraphics::Buffer::Buffer
Buffer(const Buffer &other)=delete
nkGraphics::Buffer::prepareForShaderResourceUsage
virtual void prepareForShaderResourceUsage(bool value=true)
nkGraphics::Buffer::unmap
virtual void unmap(const UnmapRequestDescriptor &requestDesc)=0
nkGraphics::Buffer::setMiscFlag
virtual void setMiscFlag(RESOURCE_MISC_FLAG value)=0
nkExport::Exportable
An interface to define objects that can be exported using this component.
Definition: Exportable.h:15
nkGraphics::BIND_FLAG
BIND_FLAG
Available binding flags for a resources.
Definition: DxDefinesWrapper.h:25
nkGraphics::Buffer::gpuCopyFrom
virtual void gpuCopyFrom(Buffer &other, const ResourceGpuCopyDescriptor &descriptor)=0
nkMemory::BufferView
A view over data.
Definition: BufferView.h:18
nkGraphics::Buffer::setCpuData
void setCpuData(const nkMemory::BufferView<> &data)
nkGraphics::UnmapRequestDescriptor
Description of an unmap request.
Definition: UnmapRequestDescriptor.h:19
nkGraphics::Buffer
A buffer that will reside on the GPU.
Definition: Buffer.h:15
nkGraphics::Buffer::setElementCount
virtual void setElementCount(unsigned int value)
nkGraphics::Buffer::getElementByteSize
unsigned int getElementByteSize() const
nkGraphics::Buffer::getCpuAccessFlag
virtual CPU_ACCESS_FLAG getCpuAccessFlag() const =0
nkGraphics::Buffer::prepareForComputeResourceUsage
virtual void prepareForComputeResourceUsage(bool value=true)
nkGraphics::Buffer::exportClassToTree
virtual void exportClassToTree(nkExport::Node *rootNode) override
nkGraphics::Buffer::getUsage
virtual USAGE getUsage() const =0
nkGraphics::USAGE
USAGE
Available usage for resources. Drives the memory used for hosting the data.
Definition: DxDefinesWrapper.h:13
nkMemory::Buffer
A buffer holding binary data.
Definition: Buffer.h:32
nkExport::Node
A node in the tree structure representing the data to export / import.
Definition: Node.h:42
nkGraphics::Buffer::getMiscFlag
virtual RESOURCE_MISC_FLAG getMiscFlag() const =0
nkGraphics::Buffer::importClassFromTree
virtual void importClassFromTree(nkExport::Node *rootNode) override
nkGraphics::Buffer::~Buffer
virtual ~Buffer()
nkGraphics::Buffer::getBindFlag
virtual BIND_FLAG getBindFlag() const =0
nkGraphics::Buffer::copyParams
virtual void copyParams(const Buffer &other)=0
nkGraphics::CPU_ACCESS_FLAG
CPU_ACCESS_FLAG
Available cpu access flags.
Definition: DxDefinesWrapper.h:44
nkGraphics::Buffer::getElementCount
unsigned int getElementCount() const
nkGraphics::Buffer::map
virtual MapResult map(const MapRequestDescriptor &requestDesc)=0
nkGraphics::Buffer::prepareForOutputStreamUsage
virtual void prepareForOutputStreamUsage(bool value=true)
nkGraphics::Buffer::setBindFlag
virtual void setBindFlag(BIND_FLAG value)=0
nkGraphics::Buffer::setCpuDataCopy
void setCpuDataCopy(const nkMemory::BufferView<> &data)
nkGraphics::Buffer::setElementByteSize
virtual void setElementByteSize(unsigned int value)
nkGraphics::Buffer::setCpuDataForward
void setCpuDataForward(nkMemory::Buffer &&data)
nkGraphics::Buffer::getTotalByteSize
unsigned int getTotalByteSize() const
nkGraphics::Buffer::freeCpuData
virtual void freeCpuData()
nkGraphics
Encompasses all API of component NilkinsGraphics.
Definition: BoundingBox.h:7
nkGraphics::ResourceGpuCopyDescriptor
Holds information about a resource copy happening on the GPU only.
Definition: ResourceGpuCopyDescriptor.h:12
nkGraphics::Buffer::setCpuAccessFlag
virtual void setCpuAccessFlag(CPU_ACCESS_FLAG value)=0
nkGraphics::Buffer::setUsage
virtual void setUsage(USAGE value)=0
nkGraphics::ShaderResource
Base class for shader resources. Those are resources that can be fed to a Shader.
Definition: ShaderResource.h:12